import CryptoJS from 'crypto-js'; // 引入加密库
export default {
	install(Vue, options) {
		const secretKey = options.secretKey || 'your_secret_key'; // 设置加密密钥  
		return {
			/**
			 * 加密数据
			 * @param {any} data 需要加密的数据
			 * @returns {string} 返回加密后的字符串
			 */
			encrypt: (data, key = secretKey, flag) => {
				const ciphertext = CryptoJS.AES.encrypt(JSON.stringify(data), flag ? key + 'ke' : key).toString();
				return ciphertext;
			},
			/**
			 * 解密数据
			 * @param {string} ciphertext 加密后的字符串
			 * @returns {any} 返回解密后的数据
			 */
			decrypt: (ciphertext, key = secretKey, flag) => {
				if (flag) {
					const [c, k] = ciphertext.split('encryptionKey=');
					ciphertext = c;
					key = k;
				}
				const bytes = CryptoJS.AES.decrypt(ciphertext, flag ? key + 'ke' : key);
				if (!bytes) {
					return null; // 返回空值或其他错误处理方式
				} else {
					const plaintext = bytes.toString(CryptoJS.enc.Utf8);
					const data = JSON.parse(plaintext);
					return data;
				}
			}
		}
	}
}